[이코테]#2 DFS & BFS


DFS(Depth-First Search)

  • DFS는 깊이 우선 탐색이라고도 부르며 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘입니다.
  • DFS는 스택 자료구조(혹은 재귀함수)를 이용하며, 구체적인 동작 과정은 다음과 같습니다.

    1. 탐색 시작 노드를 스택에 삽입하고 방문 처리를 합니다.
    2. 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리합니다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼냅니다.
    3. 더 이상 2번의 과정을 수행할 수 없을 때까지 반복합니다.

DFS 동작 예시

4.DFS

4-1.DFS

4-2.DFS

4-3.DFS

1번 노드는 이미 방문을 했기때문에 7번 노드를 방문합니다.

4-4.DFS

더이상 들어갈 수 없다면 다시 돌아와서 깊게 들어가는 방식을 반복합니다.

4-5.DFS

노드6은 방문하지 않은 노드가 없으므로 6번 노드를 꺼냅니다.

4-6.DFS

4-7.DFS


위로 올라가기💨

Hello, I'm@nickhealthy
개발자를 꿈꾸고, 파이썬과 클라우드에 관심이 많은 비전공자

Github